package com.zhijian.warehouse.manage.entity.vo.request;

import com.zhijian.entity.PageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 影响库存操作记录表 查询条件vo
 *
 * @author auto
 * @version 1.0
 * @date 2024-10-28 10:28:44
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Api(tags = "影响库存操作记录表查询条件vo")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StoreOptRecordSearchVo extends PageVo implements Serializable {

    private static final long serialVersionUID = -1;


    /**
     * id数组
     */
    @ApiModelProperty("id数组")
    private List<Long> idList;

    /**
     * 主键自增id
     */
    @ApiModelProperty("主键自增id")
    private Long id;


    /**
     * 产品id
     */
    @ApiModelProperty("产品id")
    private Long productId;

    /**
     * 仓库id
     */
    @ApiModelProperty("仓库id")
    private Long warehouseId;

    /**
     * 库位id
     */
    @ApiModelProperty("库位id")
    private Long warehouseLocationId;


    /**
     * 操作类型 1=产品入库 2=产品出库 3=盘盈入库 4 =盘亏出库 5 = 调拨入库 6 = 调拨出库
     */
    @ApiModelProperty("操作类型 1=产品入库 2=产品出库 3=盘盈入库 4 =盘亏出库 5 = 调拨入库 6 = 调拨出库 ACTION_TYPE")
    private Integer optType;


    /**
     * 操作结果 -1 减少库存 1=增加库存
     */
    @ApiModelProperty("操作结果 -1 减少库存 1=增加库存")
    private Integer type;


    /**
     * 单据编码
     */
    @ApiModelProperty("单据编码（出入库单号）")
    private String voucherCode;

    /**
     * 单据时间 yyyy-MM-dd HH:mm:ss
     */
    @ApiModelProperty("单据时间 yyyy-MM-dd HH:mm:ss")
    private String voucherTime;

    /**
     * 操作人id
     */
    @ApiModelProperty("操作人id(审核人id)")
    private Long optUserId;
    /**
     * 操作人id
     */
    @ApiModelProperty("操作人姓名（审核人）")
    private String optUserName;

    /**
     * 制单人id
     */
    @ApiModelProperty("制单人id")
    private Long crtUserId;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间（制单时间）")
    private Date createTime;


    @ApiModelProperty("用户名")
    private String crtUserName;

    /**
     * 创建时间
     */
    @ApiModelProperty("制单时间开始")
    private String startTimeStr;


    /**
     * 创建时间
     */
    @ApiModelProperty("制单时间结束")
    private String endTimeStr;

    /**
     * 出入库时间开始
     */
    @ApiModelProperty("出入库时间开始（审核时间开始）")
    private String optStartTimeStr;


    /**
     * 出入库时间结束
     */
    @ApiModelProperty("出入库时间结束（审核时间结束）")
    private String optEndTimeStr;

    @ApiModelProperty("导出时间开始")
    private String exportStartTime;



    @ApiModelProperty("导出时间结束")
    private String exportEndTime;

    /**
     * 创建时间
     */
    @ApiModelProperty("产品编码")
    private String productNumber;
    
    @ApiModelProperty("产品名称")
    private String productName;

    @ApiModelProperty("产品状态 PRO_STATUS")
    private Integer productStatus;


    /**
     * 产品类型Id
     */
    @ApiModelProperty("产品类型Id")
    private Long categoryId;

    /**
     * 单位id
     */
    @ApiModelProperty("单位id")
    private Long unitId;
    private Long drawUserId;


}
